<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 执行器函数（excutor函数）

        // 只有状态是pending的时候，才能改变状态

        // state 状态 默认值：pending
        // result 结果 默认值：undefined
        let p = new Promise((resolve,reject)=>{
            // state 状态->fulfilled
            // result 结果值 -> 传入的值 "ok"
            // resolve('ok')

            // state 状态-> rejected
            // result 结果值：->传入的值 "error"
            // reject('error')
            // console.log('123');

            // 抛出异常后 - promise失败的状态、结果值 就是 抛出的值
            // throw '抛出异常'
            // throw [1,2,3];
            // throw new Error('错误信息');
        })

        // console.log(p);

        p.then((value)=>{
            console.log(value);
        },(reason)=>{
            console.log(reason);
        });

        console.log('同步代码');

        // console.log("end");


        // 1.  promise实例初始状态为 pending，初始值为undefined
        // 1.1 PromiseState 状态
        // 1.2 PromiseResult 结果值

        // 2. promise的excutor函数是同步回调


        // 3. promise的excutor函数内调用resolve函数后
        // 3.1 状态 pending => fulfilled（成功）
        // 3.2 结果值 => resolve内参数

        // 4. promise的excutor函数内调用reject函数后
        // 4.1 状态 pending => rejected（失败）
        // 4.2 结果值 => rejected内参数

        // 5. 状态只能修改一次
        // 5.1 以第一次修改状态为准

        // 6. excutor函数内有异常，那么状态被更改为rejected,值为异常信息
        // 6.1 出现异常，
        // 6.2 抛出错误对象
        // 6.3 抛出字符串
        


    </script>
</body>

</html>